
Public Message # 6440  CPMTECH Area  Entered 08:45 Saturday  26-Dec-92
From:  BRUCE DUDLEY
  To:  SIMEON CRAN
  Re:  BYE Modem insert

Don't know if this will work but here is the MYZ80 modem insert for BYE and 
Foodo.

 --------------------------------------------------------------------------

 ; MYZ80.INS - BYE5 insert for MSDOS using MYZ80 CP/M emulator
 ;
 ; This insert adapts the MYZ80 CP/M emulator to BYE5.
 ;
 ; Adaptded to suit by:

 ; Bruce Dudley     24/12/92  SYSOP Z-Node 62 RCPM

 ;=   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  =
 ; Set to the com: port used on your PC for modem communications
 ; Note: Only set one of these to 'yes'

 com1    equ     no
 com2    equ     yes
 com3    equ     no
 com4    equ     no

         if      com1
 portbase        equ     0
         endif

         if      com2
 portbase        equ     8
         endif

         if      com3
 portbase        equ     16
         endif

         if      com4
 portbase        equ     24
         endif
 ;-----------------------------------------------------------------------
 ;
 ;
 ; See if we still have a carrier - if not, return with the zero flag
 set
 ;
 mdcarck:in      a,(portbase+6)
         bit     7,a
         ret
 ;.....
 ;
 ; Disconnect and wait for an incoming call
 ;
 mdinit: push    bc
         xor     a
         out     (portbase+1),a  ; Prevent interrupts
         ld      a,00010011b     ; Line control register value set for:
                                 ; DLAB off
                                 ; Break off
                                 ; Parity unstuck
                                 ; None...
                                 ; 1 stop bit
                                 ; 8 data bits
         out     (portbase+3),a
         in      a,(portbase+4)
         set     1,a             ; Make sure RTS is on
         out     (portbase+4),a
         call    mdstop
         ld      b,20            ; 2 second delay
 offti:  call    delay           ; 0.1 second delay
         djnz    offti           ; Keep looping until finished
         call    dtron

          if     imodem          ; If using intelligent modem
         call    iminit          ; Go initialize modem now
          endif                  ; IMODEM

         pop     bc
         ret
 ;.....
 ;
 ; Input a character from the modem port
 ;
 mdinp:  in      a,(portbase+0)
         ret
 ;.....
 ;
 ;
 ; Check the status to see if a character is available.  If not, return
 ; with the zero flag set.  If yes, use 0FFH to clear the flag.
 ;
 mdinst: in      a,(portbase+5)
         bit     0,a
         ret     z       ; Return if not ready
         or      -1      ; Set the proper flag
         ret             ; And return
 ;.....
 ;
 ;
 ; Send a character to the modem
 ;
 mdoutp: out     (portbase+0),a
         ret
 ;.....
 ;
 ;
 ; See if the output is ready for another character
 ;
 mdoutst:in      a,(portbase+5)
         bit     5,a
         ret
 ;.....
 ;
 ;
 ; Reinitialize the modem and hang up the phone by dropping DTR and
 ; leaving it inactive.
 ;
 mdquit:  if     imodem          ; If using an intelligent modem
         call    imquit          ; Tell it to shut down
          endif                  ; IMODEM
 ;
 ;
 ; Called by the main program after caller types BYE.
 ;
 mdstop: in      a,(portbase+4)
         bit     0,a
         ret     z
         res     0,a             ; Drop DTR
         out     (portbase+4),a
         ret
 ;.....

 dtron:  in      a,(portbase+4)
         bit     0,a
         ret     nz
         set     0,a             ; Assert DTR
         out     (portbase+4),a
         ret

 ;
 ; The following routine sets the baudrate.  BYE5 asks for the maximum
 ; speed you have available.
 ;
 setinv: or      -1              ; Make sure zero flag is not set
         ret
 ;.....
 ;
 ;
 set300: ld      hl,bd300
         jr      setbaud
 ;
 set1200:ld      hl,bd1200
         jr      setbaud
 ;
 set2400:ld      hl,bd2400
         jr      setbaud
 ;
 set9600:ld      hl,bd9600
         jr      setbaud
 ;
 set1920:ld      hl,bd1920
 ;
 setbaud:in      a,(portbase+3)
         set     7,a             ; Set DLAB
         out     (portbase+3),a
         ld      a,l
         out     (portbase+0),a  ; Do low byte
         ld      a,h
         out     (portbase+1),a  ; Do high byte
         in      a,(portbase+3)
         res     7,a             ; Restore DLAB
         out     (portbase+3),a
         xor     a
         ret                     ; Return
 ;.....
 ;
 ;
 ; The following are baud rates for BPORT -- they will have to be changed
 ; for your particular CTC.

 bd300   equ     180h            ; 300
 bd1200  equ     060h            ; 1200
 bd2400  equ     030h            ; 2400
 bd9600  equ     0ch             ; 9600
 bd1920  equ     6               ; 19200
 ;.....

  -------------------------------------------------------------------------

I don't know if a DOS BBS will reformat all that and if so it will look a 
mess. Looks OK here on Z-Node..

  Bruce..
 
--- Foodo v1.1
 * Origin: Z-Node 62 RCPM, Perth Western Australia. CP/M on FidoNet (3:690/718)

